#include"Common.h"
//#include"FreeList.h"
#include"CentralCache.h"

//在这里我们需要对齐，减少哈希桶空间映射的浪费，ThreadCache负责分配小于256KB的内存，如果每一个数值我们都需要映射，那么我们需要256*1024个自由链表
class ThreadCache{
public:
    //申请内存
    void* Allocate(size_t size);
    //归还内存
    void Deallocate(void* obj,size_t size);
    //从Cetrealcache(中心缓存)获取内存
    void FetchFromCentralCache(int index,size_t alignsize);

private:
    FreeList _lists[204];//自由链表内存数映射的哈希桶
};

//线程存储局部变量，确保每一个线程都拥有一个ThreadCache,在这里只进行声明，
//extern thread_local ThreadCache pTLSThreadCache;构造拷贝
//extern thread_local ThreadCache* pTLSThreadCache;//用时拷贝